package com.blockchain.console.service.user;

import java.sql.SQLException;

import java.math.BigDecimal;
import com.blockchain.common.enums.IsPass;
import com.blockchain.console.service.financial.entity.CzglRecord;
import com.blockchain.console.service.financial.entity.TxglRecord;
import com.blockchain.console.service.financial.query.CzglRecordQuery;
import com.blockchain.console.service.user.entity.User;
import com.blockchain.console.service.user.entity.ZhxxEntity;
import com.blockchain.console.service.user.query.UserQuery;
import com.blockchain.framework.resource.ResourceNotFoundException;
import com.blockchain.framework.service.Service;
import com.blockchain.framework.service.query.Paging;
import com.blockchain.framework.service.query.PagingResult;

/**
 * 用户管理
 */
public interface UserManage extends Service {

	/**
	 * <dt>
	 * <dl>
	 * 描述：查询用户列表信息
	 * </dl>
	 */
	public abstract PagingResult<User> userSearch(UserQuery userQuery, Paging paging) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：查询用户信息
	 * </dl>
	 */
	public abstract User get(int userid) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：修改用户信息
	 * </dl>
	 */
	public abstract void updateUser(UserQuery query, int userid) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：锁定用户
	 * </dl>
	 */
	public abstract void sdyh(IsPass sfsd, int userid) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：高级实名认证信息列表
	 * </dl>
	 */
	public abstract PagingResult<User> gjsmList(UserQuery userQuery, Paging paging) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：高级实名认证审核
	 * </dl>
	 */
	public abstract void gjrzSh(int userid, IsPass type, String bz) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：用户身份照
	 * </dl>
	 */
	public abstract User getSfz(int userid) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：用户人民币账户信息
	 * </dl>
	 */
	public ZhxxEntity rmbZhxx(int userid) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：用户账户虚拟币信息
	 * </dl>
	 */
	public PagingResult<ZhxxEntity> xlbZhxx(int userid, Paging paging) throws Throwable;
	

	/**
	 * <dt>
	 * <dl>
	 * 描述：用户账户虚拟币信息
	 * </dl>
	 */
	public ZhxxEntity xlbZhxx(int userid, int bid) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：用户充值信息
	 * </dl>
	 */
	public PagingResult<CzglRecord> getUserRechargeRecordList(CzglRecordQuery query, Paging paging, int userid)
			throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：用户提现信息
	 * </dl>
	 */
	public PagingResult<TxglRecord> search(String startRechargeTime, String endRechargeTime, String status,
			Paging paging, int usid) throws Throwable;

	public void editUserRmb(String userid, BigDecimal num) throws Throwable;

	public void editUserXlb(String userid, int bid, BigDecimal num) throws Throwable;
/**
	 * 查询用户的邀请列表
	 * @param userid
	 * @throws SQLException 
	 * @throws ResourceNotFoundException 
	 */
	public abstract PagingResult<User> getYqList(int userid, Paging paging) throws Throwable;

}
